
#ifdef GL_ES
precision mediump float;
#endif

const float PI=3.1415926535;

uniform vec2 u_resolution;
uniform float u_time;

const int AMOUNT =80;

//效果1
vec3 watercolor_1(vec2 coord)
{    
    for(int n=1;n<50;n++){
        float i=float(n);
        coord+=vec2(
            .7/i*sin(i*coord.y+u_time+.3*i)+.8,
            .4/i*sin(i*coord.x+u_time+.3*i)+1.6
        );
    }
    coord*=6.;
    // coord += vec2(0.7/sin(coord.y+u_time+0.3)+0.8,0.4/sin(coord.x+u_time+0.3)+1.6);
    vec3 color=vec3(
        .5*sin(coord.x)+.5,
        .5*sin(coord.y)+.5,
        sin(coord.x+coord.y));;
        return color;
}

//效果2
vec3 watercolor_2(vec2 coord){
    float len;

    for(int i = 0; i < AMOUNT; i++){
        len = length(vec2(coord.x,coord.y));
        coord.x  -= cos(coord.y+sin(len)+cos(u_time/19.0));
        coord.y  += sin(coord.x+cos(len)+sin(u_time/12.0));
    }
  
   vec3 color=vec3(cos(len*2.0),cos(len*3.0),cos(len*10.6));
   return color;
}
    
void main()
{
    ////效果1
    vec2 coord=gl_FragCoord.xy/u_resolution;
    vec3 color =watercolor_1(coord);

    //效果2
    // vec2 coord = 160.0* (gl_FragCoord.xy-u_resolution*0.5)/min(u_resolution.y,u_resolution.x) ;
    // vec3 color = watercolor_2(coord);
  
    gl_FragColor=vec4(color,1.);
}